package TestSummary;
/**本类用于进行OOP综合练习*/
public class TestComprehensive {
/** 对象1先跑完程序并打印输出，再跑第二个对象的程序并输出打印*/
    public static void main(String[] args) {
             //7.调用【无参构造】创建第一个对象
            Teacher t = new Teacher();
        //8.如果没有设置值或者是设置没有成功，获取的是默认值null。设置后
            System.out.println(t.getName()+t.getGender()+t.getAge()+t.getSalary());
           //9.重新设置并获取值
            t.setName("鲁智深");//设置值
            System.out.println(t.getName());//鲁智深
        //10.调用【全参构造】来创建第二个对象，并且给对象的属性赋值
        Teacher t2 = new Teacher("李逵","壮汉",28,3000);
        System.out.println(t2.getName()+t2.getAge()+t2.getGender()+t2.getSalary());//李逵28壮汉300.0
        //11.调用普通方法
        t2.ready();//   

    }
}

//1.创建Teacher类
class Teacher{   /**1.属性  2.get()/set() 3.构造方法*/

    //2.1提供属性(成员变量),对属性进行封装--通过private关键字进行封装
    private String name;
    private String gender;
    private int age;
    private double salary;
/**如果什么构造方法都没有添加,默认会存在无参构造
 * 如果自定了含参构造,默认的无参构造会被覆盖,注意手动添加哦
 * */
{
    System.out.println("我是一个构造代码块");
}
    //3.添加无参构造方法
    public Teacher() {
        //【无参】调用【有参】变成有参输出，且为第一行
    this("HHH","女",22,2500.5);//输出：我是一个有参构造
        System.out.println("我是无参构造");
    }
    //4.添加全参构造方法
    public Teacher(String name, String gender, int age, double salary) {
        this.name = name;
        this.gender = gender;
        this.age = age;
        this.salary = salary;
        System.out.println("我是一个有参构造");
    }
    //5.需要给外界提供公共的属性设置与访问方式（get/set方法）
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public double getSalary() {
        return salary;
    }

    public void setSalary(double salary) {
        this.salary = salary;
    }
    //6.定义普通方法
    public void ready(){
        {//在普通方法内可以生成局部代码块
            System.out.println("我是局部代码块");
        }
        System.out.println("正在Ready备课中");
        //在公共方法中放入私有方法即可调用
        teach();
    }
    private void teach(){
        System.out.println("正在Teach上课。。。。。");
    }
}


